<?php

require_once "Hijos.php";

require_once "HistorialLaboral.php";
require_once "HistorialAcademico.php";

require_once ('Acudientes.php');
require_once ('Personas.php');
require_once ('DatosBachiller.php');
require_once ('DatosContacto.php');
require_once ('DatosLaboral.php');
require_once ('Identificacion.php');
require_once ('Municipios.php');
require_once ('PlanesEstudios.php');
require_once ('TipoSangre.php');
require_once 'ManejoIdiomas.php';
require_once 'enums/EstadoCivil.php';

/**
 * @author Virtualidad
 * @version 1.0
 * @created 22-dic-2010 04:40:04 p.m.
 */
abstract class Asociados {

    private static $mapping = null;
    public static $EstadosCiviles = array(
        "0" => "Viudo",
        "1" => "Union libre",
        "2" => "Religioso",
        "3" => "Separado",
        "4" => "Divorciado",
        "5" => "Casado",
        "6" => " ",
        "7" => "Soltero",
    );

    public static function MAPPING() {
        if (self::$mapping == null) {
            self::$mapping = array(
                "LibretaMilitar" => "Identificacion",
                "Identificacion" => "Identificacion",
                "Acudiente" => "Acudientes",
                "Acudiente.mapping" => Acudientes::MAPPING(),
                "Conyugue" => "Personas",
                "Conyugue.mapping" => Personas::MAPPING(),
                "DatosBachiller" => "DatosBachiller",
                "DatosBachiller.mapping" => DatosBachiller::MAPPING(),
                "DatosLaborales" => "DatosLaboral",
                "DatosLaborales.mapping" => DatosLaboral::MAPPING(),
                "DatosMadre" => "Personas",
                "DatosMadre.mapping" => Personas::MAPPING(),
                "DatosPadre" => "Personas",
                "DatosPadre.mapping" => Personas::MAPPING(),
                "DatosResidencia" => "DatosContacto",
                "DatosResidencia.mapping" => DatosContacto::MAPPING(),
                "PlanEstudio" => "PlanesEstudios",
                "PlanEstudio.mapping" => PlanesEstudios::MAPPING(),
                "TipoSangre" => "TipoSangre",
                "LugarNacimiento" => "Municipios",
                "LugarNacimiento.mapping" => Municipios::MAPPING(),
                "DatosCorreo" => "DatosContacto",
                "DatosCorreo.mapping" => DatosContacto::MAPPING(),
                "HistorialLaboral.array" => "HistorialLaboral",
                "HistorialLaboral.array.mapping" => HistorialLaboral::MAPPING(),
                "HistorialAcademico.array" => "HistorialAcademico",
                "HistorialAcademico.array.mapping" => HistorialAcademico::MAPPING(),
                "Hijos.array" => "Hijos",
                "Hijos.array.mapping" => Hijos::MAPPING(),
                "ManejoIdiomas.array" => "ManejoIdiomas",
                "ManejoIdiomas.array.mapping" => ManejoIdiomas::MAPPING(),
            );
        }

        return self::$mapping;
    }

    private $Acudiente;
    private $Apellidos;
    private $Celular = 0;
    private $CodigoEstudiante;
    private $CodigoInterno;
    private $CodigoPlan;
    private $Conyugue;
    private $DatosBachiller;
    private $DatosCorreo;
    private $DatosLaborales;
    private $DatosMadre;
    private $DatosPadre;
    private $DatosResidencia;
    private $Email;
    private $Email2;
    private $EmailEnvio;
    private $EPS;
    private $EstadoCivil;
    private $EstratoSocioeconomico;
    private $FechaMuerte;
    private $FechaNacimiento;
    private $TipoSangre;
    private $Identificacion;
    private $LibretaMilitar;
    private $LugarNacimiento;
    private $Nombres;
    private $PlanEstudio;
    private $Sexo;
    private $DireccionPadres;
    private $HistorialLaboral = array();
    private $HistorialAcademico = array();
    private $Hijos = array();
    private $ManejoIdiomas = array();

    function __construct() {
        $this->TipoSangre = new TipoSangre();
    }

    public function getAcudiente() {
        return $this->Acudiente;
    }

    public function setAcudiente($Acudiente) {
        $this->Acudiente = $Acudiente;
    }

    public function getApellidos() {
        return $this->Apellidos;
    }

    public function setApellidos($Apellidos) {
        $this->Apellidos = $Apellidos;
    }

    public function getCelular() {
        return $this->Celular;
    }

    public function setCelular($Celular) {
        if (is_numeric($Celular)) {
            $this->Celular = $Celular;
        }
    }

    public function getCodigoEstudiante() {
        return $this->CodigoEstudiante;
    }

    public function setCodigoEstudiante($CodigoEstudiante) {
        $this->CodigoEstudiante = $CodigoEstudiante;
    }

    public function getCodigoInterno() {
        return $this->CodigoInterno;
    }

    public function setCodigoInterno($CodigoInterno) {
        $this->CodigoInterno = $CodigoInterno;
    }

    public function getCodigoPlan() {
        return $this->CodigoPlan;
    }

    public function setCodigoPlan($CodigoPlan) {
        $this->CodigoPlan = $CodigoPlan;
    }

    /**
     *
     * @return Personas
     */
    public function getConyugue() {
        return $this->Conyugue;
    }

    public function setConyugue($Conyugue) {
        $this->Conyugue = $Conyugue;
    }

    public function getDatosBachiller() {
        return $this->DatosBachiller;
    }

    public function setDatosBachiller($DatosBachiller) {
        $this->DatosBachiller = $DatosBachiller;
    }

    public function getDatosCorreo() {
        return $this->DatosCorreo;
    }

    public function setDatosCorreo($DatosCorreo) {
        $this->DatosCorreo = $DatosCorreo;
    }

    public function getDatosLaborales() {
        return $this->DatosLaborales;
    }

    public function setDatosLaborales($DatosLaborales) {
        $this->DatosLaborales = $DatosLaborales;
    }

    public function getDatosMadre() {
        return $this->DatosMadre;
    }

    public function setDatosMadre($DatosMadre) {
        $this->DatosMadre = $DatosMadre;
    }

    public function getDatosPadre() {
        return $this->DatosPadre;
    }

    public function setDatosPadre($DatosPadre) {
        $this->DatosPadre = $DatosPadre;
    }

    public function getDatosResidencia() {
        return $this->DatosResidencia;
    }

    public function setDatosResidencia($DatosResidencia) {
        $this->DatosResidencia = $DatosResidencia;
    }

    public function getEmail() {
        return $this->Email;
    }

    public function setEmail($Email) {
        $this->Email = $Email;
    }

    public function getEmail2() {
        return $this->Email2;
    }

    public function setEmail2($Email2) {
        $this->Email2 = $Email2;
    }

    public function getEmailEnvio() {
        return $this->EmailEnvio;
    }

    public function setEmailEnvio($EmailEnvio) {
        $this->EmailEnvio = $EmailEnvio;
    }

    public function getEPS() {
        return $this->EPS;
    }

    public function setEPS($EPS) {
        $this->EPS = $EPS;
    }

    public function getEstadoCivil() {
        return $this->EstadoCivil;
    }

    public function setEstadoCivil($EstadoCivil) {
        $this->EstadoCivil = $EstadoCivil;
    }

    public function getEstratoSocioeconomico() {
        return $this->EstratoSocioeconomico;
    }

    public function setEstratoSocioeconomico($EstratoSocioeconomico) {
        $this->EstratoSocioeconomico = $EstratoSocioeconomico;
    }

    public function getFechaMuerte() {
        return $this->FechaMuerte;
    }

    public function setFechaMuerte($FechaMuerte) {
        $this->FechaMuerte = $FechaMuerte;
    }

    public function getFechaNacimiento() {
        return $this->FechaNacimiento;
    }

    public function setFechaNacimiento($FechaNacimiento) {
        $this->FechaNacimiento = $FechaNacimiento;
    }

    public function getTipoSangre() {
        return $this->TipoSangre;
    }

    public function setTipoSangre(TipoSangre $TipoSangre) {
        $this->TipoSangre = $TipoSangre;
    }

    public function getIdentificacion() {
        return $this->Identificacion;
    }

    public function setIdentificacion(Identificacion $Identificacion) {
        $this->Identificacion = $Identificacion;
    }

    public function getLibretaMilitar() {
        return $this->LibretaMilitar;
    }

    public function setLibretaMilitar($LibretaMilitar) {
        $this->LibretaMilitar = $LibretaMilitar;
    }

    public function getLugarNacimiento() {
        return $this->LugarNacimiento;
    }

    public function setLugarNacimiento($LugarNacimiento) {
        $this->LugarNacimiento = $LugarNacimiento;
    }

    public function getNombres() {
        return $this->Nombres;
    }

    public function setNombres($Nombres) {
        $this->Nombres = $Nombres;
    }

    public function getPlanEstudio() {
        return $this->PlanEstudio;
    }

    public function setPlanEstudio($PlanEstudio) {
        $this->PlanEstudio = $PlanEstudio;
    }

    public function getSexo() {
        return $this->Sexo;
    }

    public function Sexo() {
        return $this->Sexo == 0 ? "Masculino" : "Femenino";
    }

    public function setSexo($Sexo) {
        $this->Sexo = $Sexo;
    }

    public function getDireccionPadres() {
        return $this->DireccionPadres;
    }

    public function setDireccionPadres($DireccionPadres) {
        $this->DireccionPadres = $DireccionPadres;
    }

    public function getHistorialLaboral() {
        return $this->HistorialLaboral;
    }

    public function setHistorialLaboral($HistorialLaboral) {
        $this->HistorialLaboral = $HistorialLaboral;
    }

    public function getHistorialAcademico() {
        return $this->HistorialAcademico;
    }

    public function setHistorialAcademico($HistorialAcademico) {
        $this->HistorialAcademico = $HistorialAcademico;
    }

    public function getHijos() {
        return $this->Hijos;
    }

    public function setHijos($Hijos) {
        $this->Hijos = $Hijos;
    }

    public function getManejoIdiomas() {
        return $this->ManejoIdiomas;
    }

    public function setManejoIdiomas($ManejoIdiomas) {
        $this->ManejoIdiomas = $ManejoIdiomas;
    }

}

?>